//package ffmpeg;
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStreamReader;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * ffmpeg
// *
// * @description:
// * @author: yechen
// * @email: wangqingfeng@wxyundian.com
// * @date: 2020年09月29日 10:59
// */
//public class FFmpegCommand {
//    private List<String> command;
//
//    public FFmpegCommand(List<String> command) {
//        this.command = command == null ? new ArrayList<String>() : command;
//    }
//
//    public List<String> getCommand() {
//        return command;
//    }
//
//    public void setCommand(List<String> command) {
//        this.command = command;
//    }
//
//    /**
//     * 开始执行命令
//     *
//     * @param callback 回调
//     * @return 命令的信息输出
//     * @throws Exception
//     */
//    public String start(FFmpegCallback callback) throws Exception {
//        BufferedReader br = null;
//        StringBuffer sbf = new StringBuffer();
//        String resultInfo = null;
//        try {
//            ProcessBuilder builder = new ProcessBuilder();
//            builder.command(command);
//            //正常信息和错误信息合并输出
//            builder.redirectErrorStream(true);
//            //开启执行子线程
//            Process process = builder.start();
//            String line = null;
//            br = new BufferedReader(new InputStreamReader(process.getInputStream()));
//            while ((line = br.readLine()) != null) {
//                sbf.append(line);
//                sbf.append(" ");
//            }
//            resultInfo = sbf.toString();
//            //等待命令子线程执行完成
//            int exitValue = process.waitFor();
//            //完成后执行回调
//            if (exitValue == 0 && callback != null) {
//                callback.complete(resultInfo);
//            }
//            //销毁子线程
//            process.destroy();
//        } catch (IOException e) {
//            e.printStackTrace();
//            throw new IllegalArgumentException(e.getMessage());
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//            throw new IllegalArgumentException("线程阻塞异常:" + e.getMessage());
//        } finally {
//            try {
//                if (br != null) {
//                    br.close();
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//        return resultInfo;
//    }
//
//
//    public static void main(String[] args) {
//        String ffmpegExePath = "C:\\workspace\\project\\greejoy\\picManager\\web\\tools\\ffmpeg\\bin\\ffmpeg.exe";
//        String inputFilePath = "C:\\Users\\Dulk\\Desktop\\ukulele\\01\\《小星星》.mp4";
//        String outputFilePath = "C:\\Users\\Dulk\\Desktop\\ukulele\\01\\littleStarJavaBuilder.jpg";
//        FFmpegCommandBuilder builder = new FFmpegCommandBuilder(ffmpegExePath);
//        builder.input(inputFilePath).format(FFmpegCommandFormatEnum.IMAGE)
//                .position("10").duration("0.001").size("320*240").output(outputFilePath);
//        FFmpegCommand command = builder.build();
//        try {
//            String result = command.start(null);
//            System.out.println(result);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//}
